#define _CRT_SECURE_NO_WARNINGS 2

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int datatype;

typedef struct SList {
	datatype data;
	struct SList* next;
}SList;

void SLPushFront(SList** pphead, datatype val);
void SLPrint(SList* phead);
void SLPushBack(SList** pphead, datatype val);
void SLPopFront(SList** pphead);
void SLPopBack(SList** pphead);
SList* SLFind(SList* phead, datatype val);
void SLPop(SList** pphead, datatype val);
void SLInsertAfter(SList* phead,datatype val);
void SLInsertFront(SList** pphead,SList* pos, datatype val);
void SLRemoveFront(SList** pphead, SList* pos);
void SLRemoveAfter(SList* pos);
void SLDestry(SList** pphead);